import { defineWrappedResponseHandler } from "#server/utils/handler"; import { R } from "#server/utils/response"; import { listSystemModels, getModelWithProviderByIdAny } from "#server/service/llm"; import { getAgentBySlug } from "#server/service/agent/agent"; import { getConfigGlobal } from "#server/utils/context"; export default defineWrappedResponseHandler(async (event) => { const agentSlug = getRouterParam(event, "agentSlug"); if (!agentSlug) { return R.error("参数无效", null); } const agent = await getAgentBySlug(agentSlug); if (!agent) { return R.error("agent 不存在", null); } const systemModels = await listSystemModels(); const globalDefaultModelId = await getConfigGlobal("agentDefaultModelId"); const defaultModelId = globalDefaultModelId || agent.defaultModelId; const list = systemModels.map((m) => ({ id: m.id, name: m.name, modelId: m.modelId, providerName: "—", supportsTools: m.supportsTools, type: m.type, })); if (defaultModelId) { const exists = list.some((m) => m.id === defaultModelId); if (!exists) { const row = await getModelWithProviderByIdAny(defaultModelId); if (row) { list.unshift({ id: row.model.id, name: row.model.name, modelId: row.model.modelId, providerName: row.provider.name, supportsTools: row.model.supportsTools, type: row.model.type, }); } } } return R.success({ list, defaultModelId: defaultModelId ?? null }); });